package xps.and.uudaijia.userclient.data.serviceapi;

import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;
import rx.Observable;
import xps.and.uudaijia.userclient.data.baen.AliPrePayOrder;
import xps.and.uudaijia.userclient.data.baen.CapitalListRes;
import xps.and.uudaijia.userclient.data.baen.CodeBean;
import xps.and.uudaijia.userclient.data.baen.CostBean;
import xps.and.uudaijia.userclient.data.baen.DoubleBean;
import xps.and.uudaijia.userclient.data.baen.DudgetBean;
import xps.and.uudaijia.userclient.data.baen.FKBean;
import xps.and.uudaijia.userclient.data.baen.GXBean;
import xps.and.uudaijia.userclient.data.baen.InformationBean;
import xps.and.uudaijia.userclient.data.baen.LoginBean;
import xps.and.uudaijia.userclient.data.baen.MapBean;
import xps.and.uudaijia.userclient.data.baen.OrderDetail;
import xps.and.uudaijia.userclient.data.baen.OrderListRes;
import xps.and.uudaijia.userclient.data.baen.PinCheYGBean;
import xps.and.uudaijia.userclient.data.baen.PrePayOrder;
import xps.and.uudaijia.userclient.data.baen.ReservationBean;
import xps.and.uudaijia.userclient.data.baen.SelectBean;
import xps.and.uudaijia.userclient.data.baen.SmsResponce;
import xps.and.uudaijia.userclient.data.baen.UrlBean;
import xps.and.uudaijia.userclient.data.baen.VehicleBean;
import xps.and.uudaijia.userclient.data.baen.WEBBean;
import xps.and.uudaijia.userclient.data.baen.WXQXBean;
import xps.and.uudaijia.userclient.data.baen.YHJBean;

public interface UserApi {
    //注册获取验证码
    @FormUrlEncoded
    @POST("main/user-register-send-sms")
    Observable<CodeBean> doRegisterVerification(@Field("phoneNum") String phoneNum);

    //注册验证
    @FormUrlEncoded
    @POST("main/user-register")
    Observable<CodeBean> doRegisterSubmit(@Field("code") String code, @Field("phoneNum") String phoneNum, @Field("password") String password, @Field("sex") String sex);

    //注册验证
    @FormUrlEncoded
    @POST("main/user-login")
    Observable<LoginBean> doRegisterLogin(@Field("loginMethod") String loginMethod, @Field("phoneNum") String phoneNum, @Field("password") String password);

    /**
     * 微信登录
     */
    @FormUrlEncoded
    @POST("main/user-login")
    Observable<LoginBean> getwechatLogin(@Field("loginMethod") String loginMethod, @Field("openid") String openid, @Field("nickname") String nickname, @Field("sex") String sex, @Field("headImg") String headImg, @Field("country") String country, @Field("province") String province, @Field("city") String city);

    /**
     * 微信登录
     */
    @FormUrlEncoded
    @POST("fun/search-around-driver")
    Observable<MapBean> getwechatMapJingWeiDu(@Field("lat") String lng, @Field("lng") String lat, @Field("driverType") String driverType);

    /**
     * 微信登录
     */
    @FormUrlEncoded
    @POST("web/activity")
    Observable<UrlBean> getHuoDong(@Field("driverType") String driverType);

    /**
     * 微信登录
     */
    @FormUrlEncoded
    @POST("fun/budget-price")
    Observable<ReservationBean> getReservationApi(@Field("startTime") String startTime, @Field("startLng") String startLng, @Field("startLat") String startLat, @Field("endLng") String endLng, @Field("endLat") String endLat);

    /**
     * 微信登录
     */
    @FormUrlEncoded
    @POST("order/create-order")
    Observable<VehicleBean> getReservationApiVehicle(@Field("startTime") String startTime, @Field("startLng") String startLng, @Field("startLat") String startLat, @Field("startAddress") String startAddress, @Field("endLng") String endLng, @Field("endLat") String endLat, @Field("endAddress") String endAddress, @Field("phoneNum") String phoneNum, @Field("couponId") String couponId, @Field("FIRate") String FIRate);


    /**
     * 微信登录
     */
    @FormUrlEncoded
    @POST("order/order-list")
    Observable<OrderListRes> getOrderList(@Field("orderType") String orderType, @Field("pageSize") String pageSize, @Field("pageIndex") String pageIndex);

    /**
     * 微信登录
     */
    @FormUrlEncoded
    @POST("order/cancel-order")
    Observable<CodeBean> getQuXiao(@Field("orderId") String orderId, @Field("closedRemark") String closedRemark, @Field("whoCancel") String whoCancel);

    /**
     * 查询订单
     */
    @FormUrlEncoded
    @POST("order/is-have-order")
    Observable<SelectBean> getReservationHomeSelect(@Field("str") String str);

    /**
     * 查询订单
     */
    @FormUrlEncoded
    @POST("order-fun/cost-detail")
    Observable<CostBean> getPaymentCost(@Field("orderId") String orderId);

    /**
     * 微信登录
     */
    @FormUrlEncoded
    @POST("order-fun/cost-detail")
    Observable<OrderDetail> getOrderDetail(@Field("orderId") String orderId);

    /**
     * 评论订单
     */
    @FormUrlEncoded
    @POST("order-fun/evaluate-order")
    Observable<CodeBean> getPL(@Field("orderId") String orderId, @Field("score") String score, @Field("content") String content);

    /**
     * 评论订单
     */
    @FormUrlEncoded
    @POST("order-fun/delete-order")
    Observable<CodeBean> getDeldet(@Field("orderId") String orderId);

    /**
     * 催一催
     */
    @FormUrlEncoded
    @POST("order-fun/push-order-again")
    Observable<CodeBean> getReminder(@Field("orderId") String orderId, @Field("radius") String radius);

    /**
     * 修改密码
     */
    @FormUrlEncoded
    @POST("user/reset-password")
    Observable<SmsResponce> getUpdatePassword(@Field("oldPwd") String oldPwd, @Field("newPwd") String newPwd);

    /**
     * 修改个人资料
     */
    @FormUrlEncoded
    @POST("user/modify-information")
    Observable<SmsResponce> getUpdateModifyMe(@Field("name") String name, @Field("sex") String sex);

    /**
     * 微信登录
     */
    @FormUrlEncoded
    @POST("cash/balance-recharge-by-wx")
    Observable<PrePayOrder> getweCount(@Field("clientType") String clientType, @Field("money") String money);

    /**
     * 资金列表
     */
    @FormUrlEncoded
    @POST("user/cash-record")
    Observable<CapitalListRes> getCapitalList(@Field("pageSize") String pageSize, @Field("pageIndex") String pageIndex);

    /**
     * 微信支付取消
     */
    @FormUrlEncoded
    @POST("response/change-balance-fail")
    Observable<WXQXBean> getweQX(@Field("orderSn") String orderSn);

    /**
     * 查询个人资料
     */
    @FormUrlEncoded
    @POST("user/get-information")
    Observable<InformationBean> getInformation(@Field("startTime") String startTime);

    /**
     * 查询个人资料
     */
    @FormUrlEncoded
    @POST("fun/hire-driver-budget-price")
    Observable<DudgetBean> getDudget(@Field("hiringTime") String hiringTime, @Field("startLng") String startLng, @Field("startLat") String startLat, @Field("endLng") String endLng, @Field("endLat") String endLat);

    /**
     * 微信登录
     */
    @FormUrlEncoded
    @POST("order/hiring-driver-order")
    Observable<VehicleBean> getHiring(@Field("hiringTime") String hiringTime, @Field("startTime") String startTime, @Field("startLng") String startLng, @Field("startLat") String startLat, @Field("startAddress") String startAddress, @Field("endLng") String endLng, @Field("endLat") String endLat, @Field("endAddress") String endAddress, @Field("couponId") String couponId, @Field("FIRate") String FIRate);

    /**
     * 获取修改密码验证码
     */
    @FormUrlEncoded
    @POST("main/retrieve-password-send-sms")
    Observable<SmsResponce> getUPMMYZM(@Field("phoneNum") String phoneNum);

    /**
     * 获取修改密码验证码
     */
    @FormUrlEncoded
    @POST("user/bind-phone-send-sms")
    Observable<SmsResponce> getMMYZM(@Field("phoneNum") String phoneNum);

    /**
     * 获取修改密码验证码
     */
    @FormUrlEncoded
    @POST("user/bind-phone")
    Observable<SmsResponce> getUPMM(@Field("phoneNum") String phoneNum, @Field("code") String code);

    /**
     * 修改密码
     */
    @FormUrlEncoded
    @POST("main/retrieve-password")
    Observable<SmsResponce> getUPUPMM(@Field("code") String code, @Field("phoneNum") String phoneNum, @Field("password") String password);

    /**
     * 获取
     */
    @FormUrlEncoded
    @POST("main/get-sys-info")
    Observable<WEBBean> getWEBView(@Field("type") String type);

    /**
     * 优惠劵
     */
    @FormUrlEncoded
    @POST("user/coupon-list")
    Observable<YHJBean> getYHJ(@Field("teorzc") String teorzc);

    /**
     * 获取
     */
    @FormUrlEncoded
    @POST("cash/balance-recharge-by-ali")
    Observable<AliPrePayOrder> getZFBCount(@Field("clientType") String clientType, @Field("money") String money);

    /**
     * 获取
     */
    @FormUrlEncoded
    @POST("user/feed-back")
    Observable<FKBean> getfankui(@Field("content") String content);

    /**
     * 是否加倍
     */
    @FormUrlEncoded
    @POST("order-fun/fare-increase")
    Observable<DoubleBean> getDouble(@Field("content") String content);

    /**
     * 获取
     */
    @GET("web/version")
    Observable<GXBean> getGengXin(@Query("vid") String vid);

    /**
     * 是否加倍
     */
    @FormUrlEncoded
    @POST("fun/express-train-price")
    Observable<PinCheYGBean> getPingCHeYG(@Field("startLng") String startLng, @Field("startLat") String startLat, @Field("endLng") String endLng, @Field("endLat") String endLat, @Field("ping") String ping, @Field("peopleNum") String peopleNum);

    /**
     * 是否加倍
     */
    @FormUrlEncoded
    @POST("fun/express-train-price")
    Observable<PinCheYGBean> getBuPingCHeYG(@Field("startLng") String startLng, @Field("startLat") String startLat, @Field("endLng") String endLng, @Field("endLat") String endLat, @Field("ping") String ping, @Field("peopleNum") String peopleNum);

    /**
     * 是否加倍
     */
    @FormUrlEncoded
    @POST("order/create-express-train-order")
    Observable<VehicleBean> getKuaiChe(@Field("startTime") String startTime, @Field("startLng") String startLng, @Field("startLat") String startLat, @Field("startAddress") String startAddress, @Field("endLng") String endLng, @Field("endLat") String endLat, @Field("endAddress") String endAddress, @Field("ping") String ping, @Field("peopleNum") String peopleNum, @Field("couponId") String couponId, @Field("FIRate") String FIRate);

    /**
     * 是否加倍
     */
    @FormUrlEncoded
    @POST("order/create-express-train-order")
    Observable<VehicleBean> getKuaiCheYse(@Field("startTime") String startTime, @Field("startLng") String startLng, @Field("startLat") String startLat, @Field("startAddress") String startAddress, @Field("endLng") String endLng, @Field("endLat") String endLat, @Field("endAddress") String endAddress, @Field("ping") String ping, @Field("peopleNum") String peopleNum, @Field("couponId") String couponId, @Field("FIRate") String FIRate);

}
